package com.lkd.shoppingcart.dao;

import java.util.List;

import com.lkd.shoppingcart.entity.CartItemView;

public interface CartDao {
	
	/**
	 * 将商品加入用户购物车
	 * @param userId
	 * @param productId
	 * @param quantity 购买数量
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int addToCart(Integer userId, Integer productId, Integer quantity);
	
	/**
	 * 将商品从用户购物车中移出
	 * @param userId
	 * @param productId
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int removeById(Integer userId, Integer productId);
	
	/**
	 * 清空用户购物车
	 * @param userId
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int removeByUserId(Integer userId);
	
	/**
	 * 修改购物车中某商品的购买数量
	 * @param userId
	 * @param productId
	 * @param quanity 购买数量
	 * @return 返回-1表示操作失败，返回其他表示sql语句影响的行数
	 */
	public int updateQuantityById(Integer userId, Integer productId, Integer quanity);
	
	/**
	 * 查询用户购物车的记录数
	 * @param userId
	 * @return 返回用户购物车的记录数
	 */
	public int queryForCount(Integer userId);
	
	/**
	 * 根据用户编号查询购物车信息
	 * @param userId
	 * @return 返回用户的购物车信息
	 */
	public List<CartItemView> queryByUserId(Integer userId);
	
	/**
	 * 查询用户购物车中是否存在某商品
	 * @param userId
	 * @param productId
	 * @return 返回是否存在的布尔值
	 */
	public boolean cartExists(Integer userId, Integer productId);

}
